import { LOCAL_STORAGE_KEYS, useParams } from 'common' import { useState } from 'react' import { PageContainer } from 'ui-patterns/PageContainer' import { PageSection, PageSectionContent } from 'ui-patterns/PageSection' import { TableList } from '@/components/interfaces/Database/Tables/TableList' import DeleteConfirmationDialogs from '@/components/interfaces/TableGridEditor/DeleteConfirmationDialogs' import { SidePanelEditor } from '@/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor' import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout' import DefaultLayout from '@/components/layouts/DefaultLayout' import { PageLayout } from '@/components/layouts/PageLayout/PageLayout' import { AutoEnableRLSNotice } from '@/components/ui/AutoEnableRLSNotice' import { Entity, isTableLike, postgresTableToEntity } from '@/data/table-editor/table-editor-types' import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' import { useTableEditorStateSnapshot } from '@/state/table-editor' import { TableEditorTableStateContextProvider } from '@/state/table-editor-table' import type { NextPageWithLayout } from '@/types' const DatabaseTables: NextPageWithLayout = () => { const { ref: projectRef } = useParams() const snap = useTableEditorStateSnapshot() const [selectedTableToEdit, setSelectedTableToEdit] = useState() const [isAutoEnableRLSMinimized] = useLocalStorageQuery( LOCAL_STORAGE_KEYS.RLS_EVENT_TRIGGER_BANNER_DISMISSED(projectRef ?? ''), false ) return ( <> } > {!isAutoEnableRLSMinimized && } { setSelectedTableToEdit(postgresTableToEntity(table)) snap.onEditTable() }} onDeleteTable={(table) => { setSelectedTableToEdit(postgresTableToEntity(table)) snap.onDeleteTable() }} onDuplicateTable={(table) => { setSelectedTableToEdit(postgresTableToEntity(table)) snap.onDuplicateTable() }} /> {projectRef !== undefined && selectedTableToEdit !== undefined && isTableLike(selectedTableToEdit) && ( )} ) } DatabaseTables.getLayout = (page) => ( {page} ) export default DatabaseTables